#ifndef CORE_ROTATE_H
#define CORE_ROTATE_H
#include "Hitable.h"
namespace RayTracer
{
    class RotateY : public Hitable 
    {
    public:
        RotateY(std::shared_ptr<Hitable> p, float angle);

        virtual bool Hit(
            const Ray& r, float t_min, float t_max, HitRecord& rec) const override;

        virtual bool BoundingBox(AABB& output_box) const override 
        {
            output_box = bbox;
            return hasbox;
        }

    public:
        std::shared_ptr<Hitable> ptr;
        float sin_theta;
        float cos_theta;
        bool hasbox;
        AABB bbox;
    };
}
#endif // !CORE_ROTATE_H
